package com.ssm.util;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.google.gson.Gson;

/**
 * 
 * 公共方法
 * 
 * @author gaopengchao
 * 
 */
public class CommonUtils
{
    /**
     * 判断字符串为空
     * 
     * @param str
     * @return
     */
    public static boolean isEmpty(String str)
    {
        if (str == null)
        {
            return true;
        }
        if (str.trim() == "" || str.trim().equals("null"))
        {
            return true;
        }
        return false;
    }

    public static String float2String(float f)
    {
        java.text.NumberFormat percentFormat = java.text.NumberFormat
                .getPercentInstance();
        percentFormat.setMaximumFractionDigits(2); // 最大小数位数
        percentFormat.setMaximumIntegerDigits(3);// 最大整数位数
        percentFormat.setMinimumFractionDigits(2); // 最小小数位数
        percentFormat.setMinimumIntegerDigits(1);// 最小整数位数
        String format = percentFormat.format(f);// 自动转换成百分比显示..
        return format;
    }

    // 验证手机号码的方法
    public static boolean checkPhone(String phoneNumber)
    {
        Pattern p = null;
        Matcher m = null;
        boolean b = false;
        p = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$"); // 验证手机号
        m = p.matcher(phoneNumber);
        b = m.matches();
        return b;
    }

    /**
     * list转字符串加分隔符
     * 
     * @param list
     * @param separator
     * @return
     */
    public static String listToString(List<?> list, char separator)
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < list.size(); i++)
        {
            sb.append(list.get(i)).append(separator);
        }
        return sb.toString().substring(0, sb.toString().length() - 1);
    }

    /**
     * List<String>转List<Integer>
     * 
     * @param inList
     * @return
     */
    public static List<Integer> StringToIntegerLst(List<String> inList)
    {
        List<Integer> iList = new ArrayList<Integer>(inList.size());
        try
        {
            for (int i = 0, j = inList.size(); i < j; i++)
            {
                iList.add(Integer.parseInt(inList.get(i)));
            }
        }
        catch(Exception e)
        {
        }
        return iList;
    }

    // 验证带区号的手机号码的方法
    public static boolean isPhone(final String str)
    {
        Pattern p1 = null, p2 = null;
        Matcher m = null;
        boolean b = false;
        p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$"); // 验证带区号的电话
        p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$"); // 验证没有区号的电话
        if (str.length() > 9)
        {
            m = p1.matcher(str);
            b = m.matches();
        }
        else
        {
            m = p2.matcher(str);
            b = m.matches();
        }
        return b;
    }

    public static String ListObj2json(List<?> list)
    {
        Gson gson = new Gson();

        return gson.toJson(list);
    }

   
}
